home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 52
/
Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso
/
Aminet
/
util
/
moni
/
Scout-src.lha
/
netinclude
/
inline
/
socket.h
< prev
next >
Wrap
C/C++ Source or Header
|
2002-09-16
|
21KB
|
752 lines
#ifndef _INLINE_SOCKET_H
#define _INLINE_SOCKET_H \
"$Id: socket.h,v 1.1.1.1 2001/11/26 22:21:16 tboeckel Exp $"
/* If you have used Capitalized socket function names, please include
<amitcp/bignames.h> as first file in your c programs. Use of
capitalized function names is discouraged in future projects */
#ifndef _CDEFS_H_
#include <sys/cdefs.h>
#endif
#ifndef _INLINE_STUBS_H_
#include <inline/stubs.h>
#endif
__BEGIN_DECLS
#ifndef BASE_EXT_DECL
#define BASE_EXT_DECL
#define BASE_EXT_DECL0 extern struct Library * SocketBase;
#endif
#ifndef BASE_PAR_DECL
#define BASE_PAR_DECL
#define BASE_PAR_DECL0 void
#endif
#ifndef BASE_NAME
#define BASE_NAME SocketBase
#endif
BASE_EXT_DECL0
extern __inline LONG
CloseSocket (BASE_PAR_DECL LONG d)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = d;
__asm __volatile ("jsr a6@(-0x78)"
: "=r" (res)
: "r" (a6), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
Dup2Socket (BASE_PAR_DECL LONG fd1, LONG fd2)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = fd1;
register LONG d1 __asm("d1") = fd2;
__asm __volatile ("jsr a6@(-0x108)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
Errno (BASE_PAR_DECL0)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
__asm __volatile ("jsr a6@(-0xa2)"
: "=r" (res)
: "r" (a6)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
GetSocketEvents (BASE_PAR_DECL ULONG * eventmaskp)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register ULONG * a0 __asm("a0") = eventmaskp;
__asm __volatile ("jsr a6@(-0x12c)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline ULONG
Inet_LnaOf (BASE_PAR_DECL LONG in)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = in;
__asm __volatile ("jsr a6@(-0xba)"
: "=r" (res)
: "r" (a6), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline ULONG
Inet_MakeAddr (BASE_PAR_DECL ULONG net, ULONG host)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = net;
register ULONG d1 __asm("d1") = host;
__asm __volatile ("jsr a6@(-0xc6)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline ULONG
Inet_NetOf (BASE_PAR_DECL LONG in)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = in;
__asm __volatile ("jsr a6@(-0xc0)"
: "=r" (res)
: "r" (a6), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline char *
Inet_NtoA (BASE_PAR_DECL ULONG in)
{
BASE_EXT_DECL
register char * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = in;
__asm __volatile ("jsr a6@(-0xae)"
: "=r" (res)
: "r" (a6), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
IoctlSocket (BASE_PAR_DECL LONG d, ULONG request, char * argp)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = d;
register ULONG d1 __asm("d1") = request;
register char * a0 __asm("a0") = argp;
__asm __volatile ("jsr a6@(-0x72)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
ObtainSocket (BASE_PAR_DECL LONG id, LONG domain, LONG type, LONG protocol)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = id;
register LONG d1 __asm("d1") = domain;
register LONG d2 __asm("d2") = type;
register LONG d3 __asm("d3") = protocol;
__asm __volatile ("jsr a6@(-0x90)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
: "d0", "d1", "a0", "a1", "d2", "d3");
return res;
}
extern __inline LONG
ReleaseCopyOfSocket (BASE_PAR_DECL LONG fd, LONG id)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = fd;
register LONG d1 __asm("d1") = id;
__asm __volatile ("jsr a6@(-0x9c)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
ReleaseSocket (BASE_PAR_DECL LONG fd, LONG id)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = fd;
register LONG d1 __asm("d1") = id;
__asm __volatile ("jsr a6@(-0x96)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
SetErrnoPtr (BASE_PAR_DECL void * errno_p, LONG size)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register void * a0 __asm("a0") = errno_p;
register LONG d0 __asm("d0") = size;
__asm __volatile ("jsr a6@(-0xa8)"
: "=r" (res)
: "r" (a6), "r" (a0), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline void
SetSocketSignals (BASE_PAR_DECL ULONG SIGINTR, ULONG SIGIO, ULONG SIGURG)
{
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = SIGINTR;
register ULONG d1 __asm("d1") = SIGIO;
register ULONG d2 __asm("d2") = SIGURG;
__asm __volatile ("jsr a6@(-0x84)"
: /* No Output */
: "r" (a6), "r" (d0), "r" (d1), "r" (d2)
: "d0", "d1", "a0", "a1", "d2");
}
extern __inline LONG
SocketBaseTagList (BASE_PAR_DECL struct TagItem * taglist)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register struct TagItem * a0 __asm("a0") = taglist;
__asm __volatile ("jsr a6@(-0x126)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
#ifndef NO_INLINE_STDARG
#define SocketBaseTags(tags...) \
({ struct TagItem _tags[] = { tags }; SocketBaseTagList (_tags); })
#endif /* not NO_INLINE_STDARG */
extern __inline LONG
WaitSelect (BASE_PAR_DECL LONG nfds, fd_set * readfds, fd_set * writefds, fd_set * execptfds, struct timeval * timeout, ULONG * maskp)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = nfds;
register fd_set * a0 __asm("a0") = readfds;
register fd_set * a1 __asm("a1") = writefds;
register fd_set * a2 __asm("a2") = execptfds;
register struct timeval * a3 __asm("a3") = timeout;
register ULONG * d1 __asm("d1") = maskp;
__asm __volatile ("jsr a6@(-0x7e)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2), "r" (a3), "r" (d1)
: "d0", "d1", "a0", "a1", "a2", "a3");
return res;
}
extern __inline LONG
accept (BASE_PAR_DECL LONG s, struct sockaddr * addr, LONG * addrlen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct sockaddr * a0 __asm("a0") = addr;
register LONG * a1 __asm("a1") = addrlen;
__asm __volatile ("jsr a6@(-0x30)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (a1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
bind (BASE_PAR_DECL LONG s, const struct sockaddr * name, LONG namelen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register const struct sockaddr * a0 __asm("a0") = name;
register LONG d1 __asm("d1") = namelen;
__asm __volatile ("jsr a6@(-0x24)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
connect (BASE_PAR_DECL LONG s, const struct sockaddr * name, LONG namelen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register const struct sockaddr * a0 __asm("a0") = name;
register LONG d1 __asm("d1") = namelen;
__asm __volatile ("jsr a6@(-0x36)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
getdtablesize (BASE_PAR_DECL0)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
__asm __volatile ("jsr a6@(-0x8a)"
: "=r" (res)
: "r" (a6)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct hostent *
gethostbyaddr (BASE_PAR_DECL const UBYTE * addr, LONG len, LONG type)
{
BASE_EXT_DECL
register struct hostent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = addr;
register LONG d0 __asm("d0") = len;
register LONG d1 __asm("d1") = type;
__asm __volatile ("jsr a6@(-0xd8)"
: "=r" (res)
: "r" (a6), "r" (a0), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct hostent *
gethostbyname (BASE_PAR_DECL const UBYTE * name)
{
BASE_EXT_DECL
register struct hostent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = name;
__asm __volatile ("jsr a6@(-0xd2)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline ULONG
gethostid (BASE_PAR_DECL0)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
__asm __volatile ("jsr a6@(-0x120)"
: "=r" (res)
: "r" (a6)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
gethostname (BASE_PAR_DECL STRPTR hostname, LONG size)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register STRPTR a0 __asm("a0") = hostname;
register LONG d0 __asm("d0") = size;
__asm __volatile ("jsr a6@(-0x11a)"
: "=r" (res)
: "r" (a6), "r" (a0), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct netent *
getnetbyaddr (BASE_PAR_DECL LONG net, LONG type)
{
BASE_EXT_DECL
register struct netent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = net;
register LONG d1 __asm("d1") = type;
__asm __volatile ("jsr a6@(-0xe4)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct netent *
getnetbyname (BASE_PAR_DECL const UBYTE * name)
{
BASE_EXT_DECL
register struct netent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = name;
__asm __volatile ("jsr a6@(-0xde)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
getpeername (BASE_PAR_DECL LONG s, struct sockaddr * hostname, LONG * namelen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct sockaddr * a0 __asm("a0") = hostname;
register LONG * a1 __asm("a1") = namelen;
__asm __volatile ("jsr a6@(-0x6c)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (a1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct protoent *
getprotobyname (BASE_PAR_DECL const UBYTE * name)
{
BASE_EXT_DECL
register struct protoent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = name;
__asm __volatile ("jsr a6@(-0xf6)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct protoent *
getprotobynumber (BASE_PAR_DECL LONG proto)
{
BASE_EXT_DECL
register struct protoent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = proto;
__asm __volatile ("jsr a6@(-0xfc)"
: "=r" (res)
: "r" (a6), "r" (d0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct servent *
getservbyname (BASE_PAR_DECL const UBYTE * name, const UBYTE * proto)
{
BASE_EXT_DECL
register struct servent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = name;
register const UBYTE * a1 __asm("a1") = proto;
__asm __volatile ("jsr a6@(-0xea)"
: "=r" (res)
: "r" (a6), "r" (a0), "r" (a1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline struct servent *
getservbyport (BASE_PAR_DECL LONG port, const UBYTE * proto)
{
BASE_EXT_DECL
register struct servent * res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = port;
register const UBYTE * a0 __asm("a0") = proto;
__asm __volatile ("jsr a6@(-0xf0)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
getsockname (BASE_PAR_DECL LONG s, struct sockaddr * hostname, LONG * namelen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct sockaddr * a0 __asm("a0") = hostname;
register LONG * a1 __asm("a1") = namelen;
__asm __volatile ("jsr a6@(-0x66)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (a1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
getsockopt (BASE_PAR_DECL LONG s, LONG level, LONG optname, void * optval, LONG * optlen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register LONG d1 __asm("d1") = level;
register LONG d2 __asm("d2") = optname;
register void * a0 __asm("a0") = optval;
register LONG * a1 __asm("a1") = optlen;
__asm __volatile ("jsr a6@(-0x60)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (a1)
: "d0", "d1", "a0", "a1", "d2");
return res;
}
extern __inline ULONG
inet_addr (BASE_PAR_DECL const UBYTE * cp)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = cp;
__asm __volatile ("jsr a6@(-0xb4)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline ULONG
inet_network (BASE_PAR_DECL const UBYTE * cp)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register const UBYTE * a0 __asm("a0") = cp;
__asm __volatile ("jsr a6@(-0xcc)"
: "=r" (res)
: "r" (a6), "r" (a0)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
listen (BASE_PAR_DECL LONG s, LONG backlog)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register LONG d1 __asm("d1") = backlog;
__asm __volatile ("jsr a6@(-0x2a)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
recv (BASE_PAR_DECL LONG s, UBYTE * buf, LONG len, LONG flags)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register UBYTE * a0 __asm("a0") = buf;
register LONG d1 __asm("d1") = len;
register LONG d2 __asm("d2") = flags;
__asm __volatile ("jsr a6@(-0x4e)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2)
: "d0", "d1", "a0", "a1", "d2");
return res;
}
extern __inline LONG
recvfrom (BASE_PAR_DECL LONG s, UBYTE * buf, LONG len, LONG flags, struct sockaddr * from, LONG * fromlen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register UBYTE * a0 __asm("a0") = buf;
register LONG d1 __asm("d1") = len;
register LONG d2 __asm("d2") = flags;
register struct sockaddr * a1 __asm("a1") = from;
register LONG * a2 __asm("a2") = fromlen;
__asm __volatile ("jsr a6@(-0x48)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (a2)
: "d0", "d1", "a0", "a1", "d2", "a2");
return res;
}
extern __inline LONG
recvmsg (BASE_PAR_DECL LONG s, struct msghdr * msg, LONG flags)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct msghdr * a0 __asm("a0") = msg;
register LONG d1 __asm("d1") = flags;
__asm __volatile ("jsr a6@(-0x114)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
send (BASE_PAR_DECL LONG s, const UBYTE * msg, LONG len, LONG flags)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register const UBYTE * a0 __asm("a0") = msg;
register LONG d1 __asm("d1") = len;
register LONG d2 __asm("d2") = flags;
__asm __volatile ("jsr a6@(-0x42)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2)
: "d0", "d1", "a0", "a1", "d2");
return res;
}
extern __inline LONG
sendmsg (BASE_PAR_DECL LONG s, struct msghdr * msg, LONG flags)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register struct msghdr * a0 __asm("a0") = msg;
register LONG d1 __asm("d1") = flags;
__asm __volatile ("jsr a6@(-0x10e)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
sendto (BASE_PAR_DECL LONG s, const UBYTE * msg, LONG len, LONG flags, const struct sockaddr * to, LONG tolen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register const UBYTE * a0 __asm("a0") = msg;
register LONG d1 __asm("d1") = len;
register LONG d2 __asm("d2") = flags;
register const struct sockaddr * a1 __asm("a1") = to;
register LONG d3 __asm("d3") = tolen;
__asm __volatile ("jsr a6@(-0x3c)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (a0), "r" (d1), "r" (d2), "r" (a1), "r" (d3)
: "d0", "d1", "a0", "a1", "d2", "d3");
return res;
}
extern __inline LONG
setsockopt (BASE_PAR_DECL LONG s, LONG level, LONG optname, const void * optval, LONG optlen)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register LONG d1 __asm("d1") = level;
register LONG d2 __asm("d2") = optname;
register const void * a0 __asm("a0") = optval;
register LONG d3 __asm("d3") = optlen;
__asm __volatile ("jsr a6@(-0x5a)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (d3)
: "d0", "d1", "a0", "a1", "d2", "d3");
return res;
}
extern __inline LONG
shutdown (BASE_PAR_DECL LONG s, LONG how)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = s;
register LONG d1 __asm("d1") = how;
__asm __volatile ("jsr a6@(-0x54)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1)
: "d0", "d1", "a0", "a1");
return res;
}
extern __inline LONG
socket (BASE_PAR_DECL LONG domain, LONG type, LONG protocol)
{
BASE_EXT_DECL
register res __asm("d0");
register struct Library *a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = domain;
register LONG d1 __asm("d1") = type;
register LONG d2 __asm("d2") = protocol;
__asm __volatile ("jsr a6@(-0x1e)"
: "=r" (res)
: "r" (a6), "r" (d0), "r" (d1), "r" (d2)
: "d0", "d1", "a0", "a1", "d2");
return res;
}
extern __inline void
vsyslog (BASE_PAR_DECL ULONG level, const char * format, LONG * ap)
{
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
register ULONG d0 __asm("d0") = level;
register const char * a0 __asm("a0") = format;
register LONG * a1 __asm("a1") = ap;
__asm __volatile ("jsr a6@(-0x102)"
: /* No Output */
: "r" (a6), "r" (d0), "r" (a0), "r" (a1)
: "d0", "d1", "a0", "a1");
}
extern __inline LONG
InheritSocket (BASE_PAR_DECL LONG id)
{
BASE_EXT_DECL
register LONG _res __asm("d0");
register struct Library * a6 __asm("a6") = BASE_NAME;
register LONG d0 __asm("d0") = id;
register LONG d1 __asm("d1") = 0;
__asm __volatile ("jsr a6@(-0x90)"
: "=r" (_res)
: "r" (a6), "r" (d0), "r" (d1)
: "a0", "a1", "d0", "d1");
return _res;
}
#ifndef NETINET_IN_H
#include <netinet/in.h>
#endif
extern __inline char *
inet_ntoa(BASE_PAR_DECL struct in_addr addr)
{
return Inet_NtoA(addr.s_addr);
}
extern __inline struct in_addr
inet_makeaddr(BASE_PAR_DECL int net, int host)
{
struct in_addr addr;
addr.s_addr = Inet_MakeAddr(net, host);
return addr;
}
extern __inline unsigned long
inet_lnaof(BASE_PAR_DECL struct in_addr addr)
{
return Inet_LnaOf(addr.s_addr);
}
extern __inline unsigned long
inet_netof(BASE_PAR_DECL struct in_addr addr)
{
return Inet_NetOf(addr.s_addr);
}
#undef BASE_EXT_DECL
#undef BASE_EXT_DECL0
#undef BASE_PAR_DECL
#undef BASE_PAR_DECL0
#undef BASE_NAME
__END_DECLS
#endif /* _INLINE_SOCKET_H */